package com.m3839.sdk.ym.core

/**
 * @description: IYMHeartController->心跳控制器统一基础接口
 *
 * @author ChenBaoyang
 * @date 6/1/21 11:28
 */
abstract class IYMHeartController {


    /**
     * 当前毫秒数
     */
    protected var currentSecond = 0

    /**
     * 心跳的时间间隔
     */
    protected var interval = 0

    /**
     * 倒计时的剩余时间
     */
    var remainingTime: Long = -1

    /**
     * 倒计时的提示时间点
     */
    var moments: MutableList<Int> = mutableListOf()

    /**
     * 初始化配置
     * @param interval Int 心跳间隔
     * @param listener OnHeartListener [OnHeartListener] 心跳事件的通知回调
     */
    abstract fun init(interval: Int, listener: OnHeartListener)

    /**
     * 开始心跳
     */
    abstract fun start()

    /**
     * 心跳的暂停和恢复
     * @param isPause Boolean
     */
    abstract fun pause(isPause: Boolean)

    /**
     * 结束心跳
     */
    abstract fun stop()

    /**
     * 是否忽略夜间模式
     *
     * @param ignoreNightMode Boolean
     */
    abstract fun setIgnoreNightMode(ignoreNightMode: Boolean)
}